Dynamic Adaptive Streaming over HTTP (“DASH”) is a streaming standard supporting adaptive streaming using the HTTP protocol. In one variant of DASH, media intervals may be composed of one or more layered chunks, and each additional layered chunk added to a base layer chunk may increase the quality of the media presentation for that media interval. Each media presentation may be encoded using a scalable encoder such that each media interval includes a base layer chunk and one or more enhanced layer chunks. Typically, a DASH media presentation comprises multiple media components (referred to as “adaptation-sets” in the DASH specification), such as audio, video, and/or text components. The component that may contribute the most to a bandwidth requirement for a DASH media presentation is typically the video component. In part due to its bandwidth requirements, the video component may be scalably encoded to allow for layered adaptive streaming.
In layered HTTP streaming, all the chunks (i.e., layers) corresponding to a given media interval need not be downloaded at once. The ability to download different chunks at different times may present problems based on the algorithm used to control chunk downloading. An adaptive streaming algorithm would strive to strike a fine balance between adapting rapidly to bandwidth changes while also avoiding a stall. It is also desirable to smoothen or dampen quality of presentation with respect to bandwidth fluctuations. An algorithm that adapts to bandwidth changes too rapidly would cause a degradation of the quality of presentation due to rapid changes in the quality of presentation in the presence of repeated bandwidth changes including abrupt changes. Additionally, an algorithm that relies exclusively on accurate bandwidth estimates to make download decisions may not be able to guarantee that no stall will occur as bandwidth estimates made at the client typically lag the actual available network bandwidth. For example, such an algorithm may perceive available bandwidth to be higher than it actually is for period of time causing the playout position to reach the download position resulting in a stall. Other more cautious algorithms may present less than optimal play out quality by defaulting to only downloading base layer chunks and/or enhanced layer chunks with a bandwidth requirement much lower than the available bandwidth.